index.html.vue 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <template>
  2. <!-- 头部 -->
  3. <templateHead v-if="skinId <= 4"></templateHead>
  4. <!-- 皮肤5头部 -->
  5. <templateHead5 v-if="skinId == 5"></templateHead5>
  6. <!-- 菜单 -->
  7. <templateMenu v-if="skinId <= 4"></templateMenu>
  8. <!-- 皮肤5菜单 -->
  9. <templateMenu5 v-if="skinId == 5"></templateMenu5>
  10. <!-- 内容 -->
  11. <div v-for="(item, index) in templateData" :key="index">
  12. <!--1.广告通栏-->
  13. <div v-if="item.sectorName == 'adSector'">
  14. <templateAd :skinId="skinId" :adData="adData" :adTag="item.ad.ad_tag"></templateAd>
  15. </div>
  16. <!--2.单页-详情-->
  17. <div v-if="item.sectorName == 'aboutArticleSector'">
  18. <templateAboutDetail :skinId="skinId" :templateData="item.componentList"></templateAboutDetail>
  19. </div>
  20. </div>
  21. <!-- 底部 -->
  22. <templateFoot v-if="skinId <= 4"></templateFoot>
  23. <!-- 皮肤5底部 -->
  24. <templateFoot1 v-if="skinId == 5"></templateFoot1>
  25. </template>
  26. <script setup lang="ts">
  27. //0.加载全局模板组件 start---------------------------------------->
  28. //0.1 全局通栏
  29. import templateHead from '@/components/template/sector/head/1200x200/1.vue'
  30. import templateHead5 from '@/components/template/sector/head/1200x250/1.vue'
  31. import templateMenu from '@/components/template/sector/menu/1200x130/1.vue'
  32. import templateMenu5 from '@/components/template/sector/menu/1200x187/1.vue'
  33. import templateFoot from '@/components/template/sector/foot/1200x580/1.vue'
  34. import templateFoot1 from '@/components/template/sector/foot/1200x680/1.vue'
  35. //0.2 局部通栏
  36. //0.2.1 广告组件
  37. import templateAd from '@/components/template/sector/body/ad/1200x90/1.vue'
  38. //0.2.2 底部详情-详情
  39. import templateAboutDetail from '@/components/template/sector/body/about/1200x1150/1.vue'
  40. //0.加载全局模板组件 end---------------------------------------->
  41. //1.获得基本信息单元 start---------------------------------------->
  42. //1.1获得页面依赖
  43. import { ref, onMounted } from 'vue';
  44. //1.2获得pinia源
  45. import { useTemplateBaseStore } from '@/stores/templateBase'
  46. const templateBaseStore: any = useTemplateBaseStore()
  47. //1.3获得该页的皮肤id - 在每个组件中也是同样的获得方法
  48. const skinId = ref<number>(0)
  49. const websiteId = ref<number>(0)
  50. //1.4获得站点基本信息
  51. const responseStatus = await requestDataPromise('/web/getWebsiteAllinfo', {
  52. method: 'GET',
  53. query: {
  54. 'link_textnum': 24,
  55. 'link_imgnum': 18,
  56. 'link_footnum': 4
  57. },
  58. });
  59. if (responseStatus.code == 200) {
  60. if (responseStatus.data.website_foot.foot_info.status == 1) {
  61. //网站模板已停用,直接转入404页面
  62. navigateTo('/error?findPage=index')
  63. } else {
  64. //0.3.1设置站点基本信息
  65. templateBaseStore.setWebSiteInfo(responseStatus.data)
  66. websiteId.value = responseStatus.data.website_head.id;//获得网站id
  67. //0.3.2设置皮肤id
  68. skinId.value = templateBaseStore.webSiteInfo.website_foot.foot_info.template_id;
  69. console.log("当前的网站id:" + responseStatus.data.website_head.id)
  70. //0.3.3设置seo信息
  71. let seoTitle = templateBaseStore.webSiteInfo.website_head.title;
  72. let seoDescription = templateBaseStore.webSiteInfo.website_head.description;
  73. let seoKeywords = templateBaseStore.webSiteInfo.website_head.keywords;
  74. let seoSuffix = templateBaseStore.webSiteInfo.website_head.suffix;
  75. let seoName = templateBaseStore.webSiteInfo.website_head.website_name;
  76. useHead({
  77. title: seoTitle + "_" + seoSuffix,
  78. meta: [
  79. { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
  80. { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 }
  81. ]
  82. });
  83. }
  84. }
  85. //1.获得基本信息单元 end---------------------------------------->
  86. //2.页面数据 start---------------------------------------->
  87. //2.1获得页面数据
  88. const response = await requestDataPromise('/client/indexData', {
  89. method: 'POST',
  90. body: {
  91. 'website_id': websiteId.value,
  92. 'getpage': 'aloneArticle'
  93. },
  94. });
  95. //页面数据
  96. const templateData = response.data.template.aloneArticle;
  97. //广告数据
  98. const adData = ref<any[]>([]);
  99. adData.value.push(response.data.ad.top)
  100. for (let item of response.data.ad.aloneArticle) {
  101. adData.value.push(item)
  102. }
  103. templateBaseStore.setAdList(adData.value)
  104. //2.页面数据 end---------------------------------------->
  105. </script>
  106. <style lang="less" scoped>
  107. @import '@/assets/css/about.less';
  108. </style>